home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
magic
/
d
/
magicsys.d
< prev
next >
Wrap
Text File
|
1997-10-26
|
6KB
|
158 lines
(*----------------------------------------------------------------------*
* *
* MAGIC Modula's All purpose GEM Interface Cadre *
* ÿ ÿ ÿ ÿ ÿ *
*----------------------------------------------------------------------*
* Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
*----------------------------------------------------------------------*
* Dieses Modul ist urheberrechtlich geschtzt. *
* *
* Die Verffentlichung des Quelltextes oder Teilen daraus in schrift- *
* licher Form, insbesondere in Zeitschriften, sowie die Verbreitung *
* ber Public-Domain-Hndler bedarf der ausdrcklichen schriftlichen *
* Genehmigung des Autors! *
* *
* Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
* zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins- *
* besondere dieser Urheberrechts-Vermerk nicht verndert wird, und *
* durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor *
* behlt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
* von Grnden zu widerrufen. *
*----------------------------------------------------------------------*)
(*----------------------------------------------------------------------*
* MagicSYS Ein Versuch, abhngige Dinge zu vereinheitlichen *
*----------------------------------------------------------------------*)
DEFINITION MODULE MagicSys;
IMPORT SYSTEM;
(* eine besonders rgerliche Sache: NIL ist nicht gleich NIL! Bei einigen
* Systemen ist NIL als -1, bei anderen als 0 implementiert.
* MagicSys exportiert deshalb eine Konstante "Nil", die den Wert LONG(-1)
* hat, und eine Konstante "Null", die gleich LONG(0) ist.
*
* Bitte informieren Sie sich, welche Lsung ihr System anbietet, bzw.
* auch, welche Prozeduren NIL und welche NULL liefern.
*)
CONST Nil = 0FFFFFFFFH; Null = 000000000H;
CONST Bit0 = 0;
Bit1 = 1;
Bit2 = 2;
Bit3 = 3;
Bit4 = 4;
Bit5 = 5;
Bit6 = 6;
Bit7 = 7;
Bit8 = 8;
Bit9 = 9;
Bit10 = 10;
Bit11 = 11;
Bit12 = 12;
Bit13 = 13;
Bit14 = 14;
Bit15 = 15;
(* Nach dem neuen ISO-Standard wird es einen neuen Typ Namens LOC geben, der
* die kleinste adressierbare Speichereinheit darstellt. Ein ARRAY OF WORD
* wird dann nach ISO ARRAY OF LOC heien. Der ARRAY OF WORD beruht im brigen
* auf einem Miverstndniss, da auf der Lilith (der Rechner, auf dem Wirth
* Modula-2 entwickelt hat) die kleinste adressierbare Einheit eben ein WORD ist.
* Bei den Rechnern der 68xxx Serie ist das aber anders. Deshalb ist die
* Entscheidung des ISO-Ausschusses durchaus vernnftig und gerechtfertigt.
*
* Mit Version 2.0 untersttzt auch MAGIC und alle davon abhngigen Bibliotheken
* dieses Konzept.
*)
TYPE LOC = SYSTEM.LOC;
(* 8-Bit Typen *)
(* Es wird davon ausgegangen, da ein CHAR auch nach ISO weiterhin 8 Bit
* gro ist, und somit keine Kompatibilittsprobleme auftreten.
*)
TYPE Byte = SYSTEM.BYTE;
ByteSet = SET OF [0..7];
(* 16-Bit Typen *)
TYPE sWORD = SYSTEM.WORD;
sINTEGER = INTEGER;
sCARDINAL = CARDINAL;
sBITSET = BITSET;
(* 32-Bit Typen *)
(* Achtung, LONGWORD und LONGBITSET gibts auf manchen Systemen nicht! *)
TYPE lINTEGER = LONGINT;
lCARDINAL = LONGCARD;
TYPE lWORD = SYSTEM.LONGWORD;
TYPE lBITSET = SET OF [0..31];
(* Typ-Casting *)
PROCEDURE CastToChar (REF value: ARRAY OF LOC): CHAR;
PROCEDURE CastToByte (REF value: ARRAY OF LOC): Byte;
PROCEDURE CastToByteset (REF value: ARRAY OF LOC): ByteSet;
PROCEDURE CastToInt (REF value: ARRAY OF LOC): sINTEGER;
PROCEDURE CastToCard (REF value: ARRAY OF LOC): sCARDINAL;
PROCEDURE CastToBitset (REF value: ARRAY OF LOC): sBITSET;
PROCEDURE CastToWord (REF value: ARRAY OF LOC): sWORD;
PROCEDURE CastToLInt (REF value: ARRAY OF LOC): lINTEGER;
PROCEDURE CastToLCard (REF value: ARRAY OF LOC): lCARDINAL;
PROCEDURE CastToLBitset (REF value: ARRAY OF LOC): lBITSET;
PROCEDURE CastToLWord (REF value: ARRAY OF LOC): lWORD;
PROCEDURE CastToAddr (REF value: ARRAY OF LOC): SYSTEM.ADDRESS;
(* Casten jeden beliebigen Typ auf den Ergebnistyp *)
PROCEDURE Basepage (): SYSTEM.ADDRESS;
(* liefert die Adresse der Basepage *)
PROCEDURE Accessory (): BOOLEAN;
(* TRUE, wenn das Programm als ACC luft *)
PROCEDURE SysHeader (): SYSTEM.ADDRESS;
(* liefert die Adresse des Systemheaders *)
PROCEDURE TosVersion (): sCARDINAL;
(* liefert die Version des Betriebssystems *)
PROCEDURE TosDate (): sCARDINAL;
(* liefert das Datum der Betriebssystemversion im GEMDOS-Format *)
PROCEDURE Terminate (return: sINTEGER);
(* Bendet ein Programm *)
PROCEDURE CallGEM (function: sINTEGER; parablock: SYSTEM.ADDRESS);
(* Ruft eine AES-Funktion auf *)
PROCEDURE VqGdos (): LONGCARD;
(* Testet ob ein GDOS geladen ist *)
END MagicSys.